This invention relates to removable-card interfaces, and more particularly to dual-protocol interfaces for removable cards.
Flash-memory cards are widely used for storing digital pictures captured by digital cameras. One useful format is the Secure-Digital (SD) format, which is an extension of the earlier MultiMediaCard (MMC) format. SD cards are thin and the area of a large postage stamp. Sony's Memory Stick (MS) is another digital-file-card format that is shaped somewhat like a stick of chewing gum.
SD cards are also useful as add-on memory cards for other devices, such as portable music players, personal digital assistants (PDAs), and even notebook computers. SD cards are hot-swappable, allowing the user to easily insert and remove SD cards without rebooting or cycling power. Since the SD cards are small, durable, and removable, data files can easily be transported among electronic devices by being copied to an SD card. SD cards are not limited to flash-memory cards, but other applications such as communications transceivers can be implemented as SD cards.
The SD interface currently supports a top transfer rate of 100 Mb/s, which is sufficient for many applications. However, some applications such as storage and transport of full-motion video could benefit from higher transfer rates.
Other bus interfaces offer higher transfer rates. Universal-Serial-Bus (USB) has a top transfer rate of 480 Mb/s. Peripheral-Component-lnterconnect (PCI) Express, at 2.5 Gb/s, and Serial-Advanced-Technology-Attachment (SATA), at 1.5 Gb/s and 3.0 Gb/s, are two examples of high-speed serial bus interfaces for next generation devices. IEEE 1394 (Firewire) supports 3.2 Gb/s. Serial Attached Small-Computer System Interface (SCSI) supports 1.5 Gb/s or 3.0 Gb/s. These are 5 to 32 times faster than the SD interface.
A new removable-card form-factor known as ExpressCard has been developed by the Personal-Computer Memory Card International Association (PCMCIA), PCI, and USB standards groups. ExpressCard 26 is about 75 mm long, 34 mm wide, and 5 mm thick and has ExpressCard connector 28. ExpressCard provides both USB and PCI Express interfaces on the same 26-pin card connector.
Serial-ATA is used mostly as an internal expansion interface on PC's, since it requires two separate connectors. A first 7-pin connector carries signals while a second 15-pin connector is for power. ExpressCard's large 26-pin connector limits its usefulness and increases the physical size of devices using ExpressCard connectors. Compact-Flash cards also tend to be larger in size than SD cards since Compact-Flash has more connector pins.
SD and MMC are complementary card interfaces, and are sometimes lumped together and referred to as SD/MMC cards. The older MMC cards have 7 metal connector pads while SD has 9 connector pads. MMC cards can fit in SD slots, and SD cards can fit in MMC slots. However, the host must determine which type of card is inserted into its slot. When a MMC card is inserted, only 7 pads are used, while the additional 2 pads are used when a SD card is detected in the slot.
FIG. 1 shows a prior-art card-detection routine executed by a host. The host, such as a host personal computer (PC) detects when a card is inserted into a slot, step 200, such as by detecting the card-detect (CD) pin that is pulled high by a resistor on the SD card. The host sends a sequence of commands to the inserted card that includes a CMD55 command, step 202. If the card does not respond properly to the CMD55 command, step 204, then the card is an MMC card, not a SD card. A sequence of commands is sent to the MMC card, step 206, which includes the CMD1 command. The MMC card is then initialized by a sequence of commands, such as the host reading configuration registers on the MMC card, step 208. The host uses the 7 pins shared with MMC to communicate with the MMC card.
When the inserted card responds to the CMD 55 command, step 204, then the card may be a SD card. Further commands are sent to the card including the advanced command ACMD41, step 210. If the card does not respond properly to the ACMD41, step 212, then the card fails, step 214.
When the card responds properly to the ACMD41, step 210, then the card is an SD card. The SD card is then initialized by a sequence of commands, such as the host reading configuration registers on the SD card, step 216. The host uses the 9-pin SD interface to communicate with the SD card. The host can use one data line or up to four data lines in the SD interface for communication. Data stored on the SD card can be encrypted using higher-level security protocols.
FIG. 2 is a flowchart of a prior-art detection-response routine executed by a SD card. The SD card obtains power from the metal contact pads when inserted into the host slot and powers up, step 220. A card-initialization routine is started, step 222, which may include various internal self-checks. A controller inside the SD card executes these routines, activates the external interface, and then waits for commands from the host. When a CMD55 is received from the host, step 224, then the SD controller waits for an ACMD41 from the host, step 226. The card responds to the ACMD41 from the host, step 228. The SD card is then ready to receive further commands from the host, step 230. The full 9-pin SD interface is used.
While either MMC or SD cards can be detected, the transfer rate using either MMC or SD cards is slower than many current bus standards. Applications such as video transfers could benefit from a higher-speed interface to a SD card. The thin, small size of the SD card is beneficial, but the slow transfer rates could limit SD-card use in the future. A higher-speed interface to the SD card is desired, as is a detection scheme for use when higher-speed interfaces are available.